package com.jrx.anytxn.param.mapper.ext;

import com.jrx.anytxn.common.annotation.ParamTuningAnnotation;
import com.jrx.anytxn.param.entity.PrShareProfitTable;
import com.jrx.anytxn.param.mapper.base.PrShareProfitTableMapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

public interface ExtPrShareProfitTableMapper extends PrShareProfitTableMapper {

    /**
     * 根据分润参数ID 与 租户编号 查询
     * @param shareProfitId
     * @param tenantId
     * @return
     */
    PrShareProfitTable selectByShareProfitIdAndTenantId(@Param("shareProfitId") String shareProfitId, @Param("tenantId") String tenantId);

    /**
     * 根据租户ID查询所有
     * @param tenantId
     * @return
     */
    List<PrShareProfitTable> selectByTenId(String tenantId);

    /**
     * 根据租户ID和产品ID删除信息
     * @param shareProfitId
     * @param tenantId
     * @return
     */
    @ParamTuningAnnotation
    int deleteByShareProfitIdAndTenantId(@Param("shareProfitId") String shareProfitId, @Param("tenantId") String tenantId);

    /**
     * 据分润参数ID和租户ID字段更新
     * @param prShareProfitTable
     * @return
     */
    @ParamTuningAnnotation
    int updateByShareProfitIdAndTenantId(PrShareProfitTable prShareProfitTable);

    /**
     * 根据租户ID和机构ID查询所有
     * @param tenantId
     * @return
     */
    List<PrShareProfitTable> selectByTenIdAndOrgId(String tenantId,String organizationId);

    /**
     * 根据下一分润日期查询
     */
    List<PrShareProfitTable> selectByNextShareDate(@Param("nextShareDate") Date nextShareDate,
                                                   @Param("tenantId") String tenantId);

    int updateByBatch(List<PrShareProfitTable> tableList);
}
